home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
c
/
tcxl551.zip
/
TCXL_INC.EXE
/
lha
/
INC
/
TCXLENT.H
< prev
next >
Wrap
Text File
|
1990-10-01
|
9KB
|
154 lines
/*=====[ The TesSeRact(TM) CXL User Interface Development System ]======*
| Copyright (c) 1987-1990, Innovative Data Concepts. All Rights Reserved
|
| This Library is part of IDC's TesSeRact Development Tools product
| line. For information about other IDC products, call 1-215-884-3373.
*----------------------------------------------------------------------*
| <TCXLent.h> : Public definitions and prototypes for TCXL Data-entry
| system (User level).
*----------------------------------------------------------------------*
| PGS : $Id: tcxlent.h 5.51 90/10/01 00:00:00 MLM Release Locker: MLM $
| $Log: tcxlent.h $
| Revision 5.51 90/10/01 00:00:00 MLM
| TCXL 5.51
|
*======================================================================*/
#ifndef _TCXLent_
# define _TCXLent_ 1
# ifndef _TCXLwin_
# include <TCXLwin.h> /* window definitions */
# endif
/*- EntFld() field feature bits -*/
#define FLD_NUL 0x0000 /* no special features defined */
#define FLD_LWR 0x0001 /* convert to lowercase */
#define FLD_UPR 0x0002 /* convert to uppercase */
#define FLD_MIX 0x0004 /* convert to mixed case */
#define FLD_PAS 0x0008 /* do not echo typed-in chars */
#define FLD_NUM 0x0010 /* numeric field */
#define FLD_CUR 0x0020 /* currency field */
#define FLD_NWR 0x0040 /* no auto-wrap to next field */
#define FLD_LJS 0x0080 /* left justify */
#define FLD_RJS 0x0100 /* right justify */
#define FLD_TRM 0x0200 /* trim end spaces */
/*- EntFld() field edit-modes ---*/
#define FLD_INI 0x00 /* initial mode */
#define FLD_CHG 0x01 /* change mode */
#define FLD_CND 0x02 /* conditional-update mode */
/*- field movement bits ---------*/
#define FDF_MOV 0x0F /* movement */
#define FDF_BEG 0x01 /* to first field */
#define FDF_END 0x02 /* to last field */
#define FDF_UP 0x04 /* to previous field */
#define FDF_DWN 0x08 /* to next field */
/*------------------[ Data objects and access macros ]------------------*/
TYP struct Edf EdfT, *EdfP;
TYP struct Fdf FdfT, *FdfP;
struct Edf /*-[ Entry-form object ]---------*/
{ FdfP etop; /* 00|00 : head FdfT */
FdfP efld; /* 02|04 : current FdfT */
WfipCP eget; /* 04|08 : alternate getkey() */
WrdP etrm; /* 06|0C : terminating key */
ChrP efmt; /* 08|10 : format pointer */
ChrP ebfr; /* 0A|14 : buffer pointer */
ChrP ebas; /* 0C|18 : buffer base */
ChrP esep; /* 0E|1C : word-separators */
VposT epos; /* 10|20 : window-position */
BytT elen; /* 12|22 ; buffer-length */
BytT edec; /* 13|23 : decimal position */
BytT ectl; /* 14|24 : field-control flags */
AtrT efat; /* 15|25 : field attribute */
AtrT etat; /* 16|26 : text attribute */
BytT efut; /* 17|27 : reserved for future */
}; /* 18|28 ]-----------------------*/
GBL EdfP CDC _EntCtl; /*- Global entry-form pointer ------------*/
#define EdfTop(e) ((e)->etop) /* head FdfT */
#define EdfFld(e) ((e)->efld) /* current FdfT */
#define EdfGet(e) ((e)->eget) /* get function */
#define EdfTrm(e) ((e)->etrm) /* terminating key */
#define EdfFmt(e) ((e)->efmt) /* format pointer */
#define EdfBfr(e) ((e)->ebfr) /* buffer pointer */
#define EdfBas(e) ((e)->ebas) /* buffer base */
#define EdfSep(e) ((e)->esep) /* word separators */
#define EdfPos(e) ((e)->epos) /* window position */
#define EdfPosW(e) (VposW(EdfPos(e))) /* word */
#define EdfPosC(e) (VposC(EdfPos(e))) /* col */
#define EdfPosR(e) (VposR(EdfPos(e))) /* row */
#define EdfLen(e) ((e)->elen) /* field-length */
#define EdfDec(e) ((e)->edec) /* decimal-position */
#define EdfCtl(e) ((e)->ectl) /* entry-control */
#define EdfFat(e) ((e)->efat) /* field attribute */
#define EdfTat(e) ((e)->etat) /* text attribute */
struct Fdf /*-[ Field-definition object ]---*/
{ FdfP fprv; /* 00|00 : previous FdfT */
FdfP fnxt; /* 02|04 : next FdfT */
ChrP fstr; /* 04|08 : input string */
ChrP fbfr; /* 06|0C : buffer */
ChrP ffmt; /* 08|10 : format string */
IfcpCP fval; /* 0A|14 : "valid" function */
VfvCP fbef; /* 0C|18 : "before" function */
VfvCP faft; /* 0E|1C : "after" function */
KeyT fkey; /* 10|20 : hot-key */
WrdT fmsk; /* 12|22 : feature mask */
TagT ftag; /* 14|24 : tag ID */
TagT fhlp; /* 16|26 : help category */
VposT fpos; /* 18|28 : input position */
BytT fctl; /* 1A|2A : control flags */
BytT flen; /* 1B|2B : length of buffer */
BytT fdec; /* 1C|2C : decimal position */
BytT ffut; /* 1D|2D : reserved for future */
}; /* 1E|2E ]-----------------------*/
#define FdfPrv(f) ((f)->fprv) /* previous FdfT */
#define FdfNxt(f) ((f)->fnxt) /* next FdfT */
#define FdfStr(f) ((f)->fstr) /* receiving string */
#define FdfBfr(f) ((f)->fbfr) /* buffer pointer */
#define FdfFmt(f) ((f)->ffmt) /* format string */
#define FdfVal(f) ((f)->fval) /* "valid" function */
#define FdfBef(f) ((f)->fbef) /* "before" function */
#define FdfAft(f) ((f)->faft) /* "after" function */
#define FdfKey(f) ((f)->fkey) /* hotkey */
#define FdfMsk(f) ((f)->fmsk) /* feature mask */
#define FdfTag(f) ((f)->ftag) /* tag ID */
#define FdfHlp(f) ((f)->fhlp) /* help category */
#define FdfPos(f) ((f)->fpos) /* position */
#define FdfPosW(f) (VposW(FdfPos(f))) /* word */
#define FdfPosC(f) (VposC(FdfPos(f))) /* col */
#define FdfPosR(f) (VposR(FdfPos(f))) /* row */
#define FdfCtl(f) ((f)->fctl) /* control flags */
#define FdfMov(f) (0 != (FdfCtl(f) & FDF_MOV)) /* movement */
#define FdfBeg(f) (0 != (FdfCtl(f) & FDF_BEG)) /* to first */
#define FdfEnd(f) (0 != (FdfCtl(f) & FDF_END)) /* to last */
#define FdfUp(f) (0 != (FdfCtl(f) & FDF_UP)) /* to previous */
#define FdfDwn(f) (0 != (FdfCtl(f) & FDF_DWN)) /* to next */
#define FdfLen(f) ((f)->flen) /* buffer length */
#define FdfDec(f) ((f)->fdec) /* decimal position */
/*------------------------[ Function prototypes ]-----------------------*/
#ifdef __cplusplus /* no mangling, please */
extern "C" {
#endif
/*- Entry-form ------------------*/
IntT CTYP EntDef(IntT f